#ifndef BOX_MODEL_CREATOR_H_JM_20120702
#define BOX_MODEL_CREATOR_H_JM_20120702
/**
* @file BoxModelCreator.h
* Interface pozadovany po tvorcoch boxov.
**/

// ## bobox

#include <bobox_runtime.hpp>
#include "BoxParameterPack.h"

namespace jm4bbx {
	/**
	* Rozhranie vyzadovane po tvorcoch boxov pouzivanych pre vytvarani 
	* boxov v runtime. Rzohranie pozaduje registrator 
	* {@link jm4bbx::BoxCreatorRegistrator}, ktory sprostredkuva mapovanie 
	* id boxu v txt modele vypoctu a tvorca boxu.
	**/
	class BoxModelCreator {
	public:
		/**
		* Vytvor box - resp. vytvor model boxu pomocou ktoreho sa neskor vytvori 
		* box.
		**/
		virtual bobox::box_model_ptr_type createBoxModel(const BoxModelParamPack& pack) = 0;
	};
}

#endif
